A number of techniques have been proposed or suggested for determining whether or not a person is “present” at a given device. Herbsleb et al., “Introducing Instant Messaging and Presence Into the Workplace,” Proc. of the Conf. on Human Factors in Computing Systems, Minneapolis, Minn., USA, ACM CHI 2002, 171-78 (Apr. 20, 2002), downloadable from http://www.informatik.uni-trier.de/˜ley/db/conf/chi/chi2002.html (Electronic Edition (DOI: 10.1145/503376.503408)). As friends and colleagues become more distributed in time or location (or both), it becomes even more desirable for a user to determine, prior to a given communication attempt, whether or not the intended recipient of the contemplated communication is currently available at one or more communication devices. The provided presence information allows a user to make a more informed decision about how to best communicate with another person. In this manner, productivity is enhanced by enabling a better selection of the best way to contact the other person. If the other person is present for a real time communication, for example, the user can choose a real time or near real time mode of communication, such as a telephone call or an instant message. Otherwise, the user can select a non-real time mode of communicating, such as an email message, voice mail message or a page. This informed choice leads to a more efficient, productive and cost effective communication.
Instant messaging systems, for example, such as those offered by America Online (AOL), typically provide a mechanism for determining whether a message recipient is present. The presence information allows the recipient of an instant message to determine whether the sender of the instant message is currently available to receive additional instant messages. The presence information is generally determined based on user login activity (e.g., whether the user is currently logged on to the AOL service). Presence information based solely on login activity, however, can grow stale over time, since a user may remain logged in to an application for several days at a time. Thus, many systems supplement the user login activity with other determinable user activity, such as such as keyboard or mouse activity and whether a user remains idle for a time period exceeding a specified interval. Thus, existing presence awareness systems can distinguish between a user who is connected to the service (present) or not connected to the service (absent), and most systems allow some sort of busy or unavailable flag to be set. For example, some presence awareness systems have been extended to allow a user to affirmatively provide a personalized text message indicating his or her current availability, such as “out to lunch,” or “in a meeting.”
While existing presence awareness systems allow a user to make a more informed decision about how to best communicate with an intended recipient, they suffer from a number of limitations, which if overcome, could further improve the ability of users to efficiently communicate. For example, existing presence awareness systems are typically proprietary, closed architecture systems that only provide presence information within the domain of the service provider (i.e., one service subscriber can only determine if another service subscriber is present). For example, the presence function provided by America Online as part of its instant messaging service (AIM) only provides presence information if both parties to an attempted communication subscribe to the AOL service. In addition, existing presence awareness systems do not support multiple, simultaneous log-ins, such as when a user has multiple devices providing information, such as an office computer and a personal digital assistant, or when a user remains logged in to a service from an office computer while attempting to log in to the same service from home. Rather, the older of the two attempted simultaneous sessions are generally automatically logged out of the service.
A need therefore exists for methods and systems that can evaluate a number of different sources of presence information to determine a presence status of a user. A further need exists for a method and apparatus for providing presence information in a variety of formats. Yet another need exists for a method and apparatus that can provide presence information based on user-specified rules.